/* list:链表容器
 * 底层数据结构：双向循环链表  pre data next
 *
 * list<int> myList;
 * 增加：
 * myList.push_back(20);   从末尾添加元素  O(1)
 * myList.push_front(20);  从首部添加元素  O(1)   // vec.insert(vec.begin(),20);  O(n)
 * myList.insert(it,20);   插入元素    O(1)
 *                      //链表中进行insert操作时，先要进行一个query查询操作，对于链表来说，查询操作效率就慢了
 *
 * 删除元素：
 * myList.pop_back();  尾部删除    O(1)
 * myList.pop_front(); 首部删除    O(1)
 * myList.erase(it);   从it指向的位置删除元素    O(1)
 *
 * 查询搜索：
 * 使用iterator：连续的insert和erase一定要考虑迭代器失效的问题
 * */